package p23_类型转换与绑定.高层转换接口的五个实现;

import lombok.ToString;
import org.springframework.beans.DirectFieldAccessor;

import java.util.Date;

/**
 * 利用反射为bean的属性赋值
 * 如果赋的值与bean属性类型不一致，则底层会使用类型转换器转换
 * 这种方式的bean，不必有get和set方法
 */
public class _3_DirectFieldAccessor {

    public static void main(String[] args) {
        MyBean bean = new MyBean();
        DirectFieldAccessor accessor = new DirectFieldAccessor(bean);
        accessor.setPropertyValue("a", "12");
        accessor.setPropertyValue("b", 3333);
        accessor.setPropertyValue("c", "1999/12/12");
        System.out.println(bean);
    }

    /**
     * 这个bean没有get、set方法
     */
    @ToString
    static class MyBean {
        private int a;
        private String b;
        private Date c;
    }
}
